﻿/*
 * zerrno.cxx
 *
 *  Created on: 2014年10月3日
 *      Author: Fifi Lyu
 */

#include "zpsoe/zerrno.h"
#include <zpsoe/ztypes.h>
#include "zpsoe/zalgorithm/zstring.h"

#ifdef PLATFORM_LINUX
    #include <errno.h>
#endif

#include <cstring>

using zpsoe::zalgorithm::zstring::to_str;

namespace zpsoe {

namespace zerrno {

ZPSOE_SHARED_LIB_API string error_to_str() {
#ifdef PLATFORM_WIN32
    string msg_(_strerror(NULL));
    const size_t size_ = msg_.size();

    if (size_) msg_.erase(size_ - 1);

    return msg_ + "(errno: " + to_str(errno) + ")";
#else
    return string(strerror(errno)) + "(errno: " + to_str(errno) + ")";
#endif
}

} /* namespace zerrno */

} /* namespace zpsoe */
